package com.unimod.fsml.model.transform;

import java.util.List;

import com.evelopers.unimod.core.stateworks.Action;
import com.evelopers.unimod.core.stateworks.Event;
import com.evelopers.unimod.core.stateworks.Guard;
import com.evelopers.unimod.core.stateworks.State;

/**
 * This class stores data without target state for transaction
 * that is not ready to be saved in state machine.
 * 
 * @author Ivan Lagunov
 */
public class UnfinishedTransition {
	/**
	 * Source state 
	 */
	private State sourceState = null;
	
	/**
	 * Trigger events.
	 */
	private List<Event> events = null;

	/**
	 * Output actions.
	 */
	private List<Action> actions = null;
	
	/**
	 * Guard condition
	 */
	private Guard guard = null;

	public UnfinishedTransition(State sourceState, List<Event> events, List<Action> actions, Guard guard) {
		this.sourceState = sourceState;
		this.events = events;
		this.actions = actions;
		this.guard = guard;
	}
	
	public void setSourceState(State sourceState) {
		this.sourceState = sourceState;
	}

	public State getSourceState() {
		return sourceState;
	}

	public void setEvents(List<Event> events) {
		this.events = events;
	}

	public List<Event> getEvents() {
		return events;
	}

	public void setActions(List<Action> actions) {
		this.actions = actions;
	}

	public List<Action> getActions() {
		return actions;
	}

	public void setGuard(Guard guard) {
		this.guard = guard;
	}

	public Guard getGuard() {
		return guard;
	}
}
